﻿
//公共变量,用来判断是选择相信信息查看,还是全部数据查看(Project)
var project_id = ""; //用于点击查看相信信息时的值存储
var project_Name = "";
var contracts_id = ""; //用于点击查看相信信息时的值存储
var contracts_Name = "";
var public_ids = {
    options: {}
};

$(function() {
$.ajax({
    dataType: 'json',
    async: false,
    url: "Handler/InitMenuHandler.ashx",
    type: "post",
    success: function(data) {
//        if (data.flag == "False") {
//            msgShow('系统提示', '用户未登陆！', 'warning');
//            location.href = "Login.htm";
//        } else {
            _menus = data;
//        }
    },
    error: function(data) {
        msgShow('系统提示', data.msg, 'warning');
    }
});
    InitLeftMenu();
    tabClose();
    tabCloseEven();
    
});
//初始化左侧
var _menus;
function InitLeftMenu() {
    $("#nav").accordion({ animate: true });

    $.each(_menus.menus, function(i, n) {
        var menulist = '';
        menulist += '<ul>';
        $.each(n.menus, function(j, o) {
            menulist += '<li><div><a ref="' + o.menuid + '" href="#" rel="' + o.url + '" ><span class="icon ' + o.icon + '" >&nbsp;</span><span class="nav">' + o.menuname + '</span></a></div></li> ';
        });
        menulist += '</ul>';

        $('#nav').accordion('add', {
            title: n.menuname,
            content: menulist,
            iconCls: 'icon ' + n.icon
        });

    });

    $('.easyui-accordion li a').click(function() {
        var tabTitle = $(this).children('.nav').text();

        var url = $(this).attr("rel");
        var menuid = $(this).attr("ref");
        var icon = getIcon(menuid, icon);

        addTab(tabTitle, url, icon);
        $('.easyui-accordion li div').removeClass("selected");
        $(this).parent().addClass("selected");
    }).hover(function() {
        $(this).parent().addClass("hover");
    }, function() {
        $(this).parent().removeClass("hover");
    });

    //选中第一个
    var panels = $('#nav').accordion('panels');
    var t = panels[0].panel('options').title;
    $('#nav').accordion('select', t);
}
//获取左侧导航的图标
function getIcon(menuid) {
    var icon = 'icon ';
    $.each(_menus.menus, function(i, n) {
        $.each(n.menus, function(j, o) {
            if (o.menuid == menuid) {
                icon += o.icon;
            }
        });
    });

    return icon;
}

var _isAlertAddTab = true;
function addTab(subtitle, url, icon) {
    if (!icon) icon = 'icon-edit';
    var tabCount = $('#tabs').tabs('tabs').length; // 获取当前打开窗口总数量
    var hasTab = $('#tabs').tabs('exists', subtitle); //根据名称判断窗口是否已打开
    //    if (!$('#tabs').tabs('exists', subtitle)) {
    //        $('#tabs').tabs('add', {

    //            title: subtitle,
    //            content: createFrame(url),
    //            closable: true,
    //            icon: icon
    //        });
    //    } else {
    //        $('#tabs').tabs('select', subtitle);
    //        $('#mm-tabupdate').click();
    //    }
    var add = function() {
        if (!hasTab) {
            $('#tabs').tabs('add', {
                title: subtitle,
                content: createFrame(url),
                closable: true,
                icon: icon
            });
        } else {
            $('#tabs').tabs('select', subtitle);
            $('#mm-tabupdate').click();
        }
    };

    if (tabCount > 2 && _isAlertAddTab) {
        var msg = '您当前打开了太多的页面，如果继续打开，会造成程序运行缓慢，无法流畅操作,是否默认进行关闭？';
        $.messager.confirm("系统提示", msg, function(b) {
            if (b) {
                //add();
                $('#tabs').tabs('close', $('#tabs').tabs('tabs')[0].panel('options').title);
                _isAlertAddTab = false;
            }
            {
                return false;
            }
        });
    } else {
        if (tabCount >= 5) {
            $('#tabs').tabs('close', $('#tabs').tabs('tabs')[0].panel('options').title);
        }
        add();
    }
    tabClose();
}

function createFrame(url) {
    var s = '<iframe scrolling="auto" frameborder="0"  src="' + url + '" style="width:100%;height:100%;"></iframe>';
    return s;
}

function CloseTab() {
    var tab = $('#tabs').tabs('getSelected');
    $('#tabs').tabs('close', tab.panel('options').title);
    var pretab = $('#tabs').tabs('getTab', '错误数据管理');
    var url = $(pretab.panel('options').content).attr('src');
    $('#tabs').tabs('update', {
        tab: pretab,
        options: {
            content: createFrame(url)
        }
    });
}

function tabClose() {
    /*双击关闭TAB选项卡*/
    $(".tabs-inner").dblclick(function() {
        var subtitle = $(this).children(".tabs-closable").text();
        $('#tabs').tabs('close', subtitle);
    });
    /*为选项卡绑定右键*/
    $(".tabs-inner").bind('contextmenu', function(e) {
        $('#mm').menu('show', {
            left: e.pageX,
            top: e.pageY
        });

        var subtitle = $(this).children(".tabs-closable").text();

        $('#mm').data("currtab", subtitle);
        $('#tabs').tabs('select', subtitle);
        return false;
    });
}
//绑定右键菜单事件
function tabCloseEven() {
    //刷新
    $('#mm-tabupdate').click(function() {
        var currTab = $('#tabs').tabs('getSelected');
        var url = $(currTab.panel('options').content).attr('src');
        $('#tabs').tabs('update', {
            tab: currTab,
            options: {
                content: createFrame(url)
            }
        });
    });
    //关闭当前
    $('#mm-tabclose').click(function() {
        var currtabTitle = $('#mm').data("currtab");
        $('#tabs').tabs('close', currtabTitle);
    });
    //全部关闭
    $('#mm-tabcloseall').click(function() {
        $('.tabs-inner span').each(function(i, n) {
            var t = $(n).text();
            $('#tabs').tabs('close', t);
        });
    });
    //关闭除当前之外的TAB
    $('#mm-tabcloseother').click(function() {
        $('#mm-tabcloseright').click();
        $('#mm-tabcloseleft').click();
    });
    //关闭当前右侧的TAB
    $('#mm-tabcloseright').click(function() {
        var nextall = $('.tabs-selected').nextAll();
        if (nextall.length == 0) {
            //msgShow('系统提示','后边没有啦~~','error');
            alert('后边没有啦~~');
            return false;
        }
        nextall.each(function(i, n) {
            var t = $('a:eq(0) span', $(n)).text();
            $('#tabs').tabs('close', t);
        });
        return false;
    });
    //关闭当前左侧的TAB
    $('#mm-tabcloseleft').click(function() {
        var prevall = $('.tabs-selected').prevAll();
        if (prevall.length == 0) {
            alert('到头了，前边没有啦~~');
            return false;
        }
        prevall.each(function(i, n) {
            var t = $('a:eq(0) span', $(n)).text();
            $('#tabs').tabs('close', t);
        });
        return false;
    });
    //退出
    $("#mm-exit").click(function() {
        $('#mm').menu('hide');
    });
}

//弹出信息窗口 title:标题 msgString:提示信息 msgType:信息类型 [error,info,question,warning]
function msgShow(title, msgString, msgType) {
    $.messager.alert(title, msgString, msgType);
}

function autoResize(options) {
    var defaults = {
        width: 6,
        height: 180
    };
    options = $.extend(defaults, options);

    // 第一次调用
    var wsize = getWidthAndHeigh();
    if ($.isFunction(options.callback)) {
        options.callback(options.par, options.method, wsize);
    };
    // 窗口大小改变的时候
    window.onresize = function() {
        var size = getWidthAndHeigh(true);
        $(options.dataGrid).datagrid({ height: size.height, width: wsize.width });
    };

    // 获取iframe大小
    function getWidthAndHeigh(resize) {
        var windowHeight = 0;
        var widowWidth = 0;
        if (typeof (window.innerHeight) == 'number') {
            windowHeight = window.innerHeight;
            widowWidth = window.innerWidth;
        }
        else {
            if (document.documentElement && document.documentElement.clientHeight) {
                windowHeight = document.documentElement.clientHeight;
                widowWidth = document.documentElement.clientWidth;
            }
            else {
                if (document.body && document.body.clientHeight) {
                    windowHeight = document.body.clientHeight;
                    widowWidth = document.body.clientWidth;
                };
            };
        };


        widowWidth -= options.width;
        windowHeight -= options.height;


        return { width: widowWidth, height: windowHeight };
    };
};
